#include "ConfigReader.hpp"
#include <filesystem>
#include <yaml-cpp/yaml.h>
#include <stdexcept>

ConfigReader::ConfigReader()
{
  if(!std::filesystem::exists("WorkDataManagerConfig.yaml"))
    throw std::runtime_error("配置文件不存在");
  YAML::Node config=YAML::LoadFile("WorkDataManagerConfig.yaml");
  if(!config["camera_list"].IsSequence())
    throw std::runtime_error("配置文件项目CameraList不存在");
  for(std::size_t i=0;i<config["camera_list"].size();i++)
    CameraList.push_back(config["camera_list"][i].as<std::string>());
  if(!config["data_root_path"].IsDefined())
    throw std::runtime_error("配置文件项目data_root_path不存在");
  DataPath=config["data_root_path"].as<std::string>();
  if(!config["pg_ipaddr"].IsDefined())
    throw std::runtime_error("配置文件项目pg_ipaddr不存在");
  IPaddress=config["pg_ipaddr"].as<std::string>();
}

std::list<std::string> ConfigReader::GetCameraList()
{
  return CameraList;
}

std::string ConfigReader::GetDataRootPath()
{
  return DataPath;
}

std::string ConfigReader::GetPGIpAddress()
{
  return IPaddress;
}
